/*
-------------------------------------------------

	Channel.h

	Dmitriy Kuzmenko (Dgut)

-------------------------------------------------
*/

#ifndef __AUTUMN_CHANNEL_H__
#define __AUTUMN_CHANNEL_H__

#include "OpenAL.h"

namespace Autumn
{

class Sound;
class Stream;

class Channel
{
	ALuint					id;
	
							Channel( ALuint id );
public:
							~Channel( void );
	
	void					Play( const Sound * sound );
	void					Play( Stream * stream );
//	void					Pause( void );
//	void					Continue( void );
	void					Stop( void );

//	void					SetVolume( float volume );
//	void					SetLoop( bool loop );
	
	const ALint				GetState( void ) const;
	
	const bool				IsFree( void ) const;
	
	static Channel * const	Create( void );
};

}	// namespace Autumn

#endif	// !!! __AUTUMN_CHANNEL_H__ !!!